The invention relates to the field of computer systems, and more specifically to server processes for allowing client processes to access data.
There exists a need to allow client processes executing on client computer systems to access data through a server process. This need arises for instance for servers offering information through the Internet to clients issuing queries in the html language. The server process hosted on the server needs to allow the client processes to access the requested information. FIG. 1 is a schematic view of the architecture of such a system. The server process 2 comprises data 4, to which access should be provided. The server process further comprises an application 6 and a engine 8. The engine may be one of several products sold on the market, such as provided under the trademark PHP by Apache Software Foundation, under the trademark ASP by Microsoft or under the trademark JSP by Sun Microsystems.
FIG. 1 further shows two client processes 10 and 12; in a generic case, the server process is hosted by one or more server machines, while each of the client process is hosted by a separate client machine. The client processes is a Web browser such the ones provided by Netscape Corp. under the trademark Navigator or by Microsoft Corp. under the trademark Internet Explorer. The client processes and the server process are connected, e.g. through a network using a protocol of the IP family. Client processes 10 and 12 communicate with the engine of the server process using html, dynamic html or other additional technologies such as activeX, Java applets, JavaScript (Trademark of Sun Microsystems, supplied by Web Browser such as Microsoft Internet Explorer, Netscape Navigator). For the sake of simplicity, html is taken as a generic example in further discussion in the specification.
The application 6 uses the same language for communicating with the engine. It may further use functions provided by the engine.
The operation of the system is the following. Client processes 10, 12 issue requests to the engine 8, in the html language. Requests from the various clients are passed by the engine 8 to the application 6, in the html language and possibly using additional functions specific to the engine. Requests from the engine are processed by the application 6, which accesses data 4 when necessary. Responses from the application are provided to the engine in the html language and are forwarded to client process.
In this type of architecture, applications may have limited portability as their design typically limits them to html clients (i.e., web browsers). Engines such as the ones listed above provide additional functions or libraries for facilitating development of applications; however, the basis for communication between applications and the engine-remains html. Thus, applications are necessarily specific to html clients and are not easily adapted to other types of clients. Thus, languages such as JSP, ASP or PHP are html-based and any application written in these languages will include html parts.
The need to allow access to data through a server process is also present for clients other than html clients. Dassault Systemes sells under the trademark CATIA a CAD product; a schematic view of the architecture of this product is shown in FIG. 2, in one example of a possible implementation of the product for two client processes 20 and 22. FIG. 2 shows a machine 24, hosting data 26 as well as one CATIA process 28, 30 for each of the client processes 20, 22. Each CATIA process contains a copy of an application 32, 34, as well as a engine 36, 38. The CATIA line of products is designed to allow an application developed under CATIA standards to operate with one of several engines; each engine is designed for one type of client process, e.g. Unix clients or Windows (trademark) clients. This makes it possible to use the same application for serving client processes running different operating systems. More specifically, as represented in FIG. 2, one copy of the same application is used for serving each client process.
The application is thus portable, inasmuch as it may be used for various types of clients running on various types of machines. As shown in FIG. 2, one CATIA process is used for each client process, even though the same data may be accessed by both processes. Each CATIA process 28, 30 would typically create its own copy of the data and care for the update of the data 26 according to amendments to the data made by client processes. This may limit the real-time sharing of data between the client processes, inasmuch as data locally amended by one client in a given CATIA process 28 may not be accessed by other client processes 22 until the application 32 in the given process 28 manages the update of data 26. In the example of FIG. 2, both CATIA processes 28, 30 are hosted on the same machine 24 as the data. One could also use separate machines; there would still be one CATIA process for each client.
Thus, there is a need for a computer system, which makes it possible to allow various clients to simply access data and in which applications would still be portable from one type of clients to the other.